1. Field of the Invention
The invention relates to a redundant storage virtualization computer system, and in particular to a redundant storage virtualization computer system utilizing a local bus to connect between two storage virtualization controllers.
2. Description of the Related Art
Storage virtualization combines sections of a physical storage device (PSD) into a logical storage entity, known as logical media unit, LMU, accessible by a host entity. Storage virtualization is utilized in Redundant Array of Independent Disks (RAID), combining smaller physical storage devices to a logical media unit with high capacity, high performance and high error tolerance.
Storage virtualization controllers (SVC) map each section of physical storage devices to form a logical media unit for a host entity. An Input/output (I/O) request is received, analyzed and interpreted as an I/O request of a physical storage device. The procedure may be indirect utilizing a cache, delay (write-back, anticipate (e.g., read ahead)), or group to enhance operability, although the I/O request of the host entity may not correspond to the I/O request of the physical storage device in a one-to-one manner.
External or stand-alone storage virtualization controllers connect to a host entity via an I/O interface, and may connect to a device external to the host entity. External storage virtualization controllers operate independently to a host entity.
The primary motivation in configuring a pair of external storage virtualization controllers (SVCs) into a redundant pair is to allow continued, uninterrupted access to data by a host (or more than one host) even in the event of a malfunction or failure of a single SVC, i.e., an abnormality occurs in a single SVC. This is accomplished by incorporating functionality into the SVCs that allow one controller to take over for the other in the event that the other becomes handicapped or completely incapacitated, i.e., an abnormality occurs in a single SVC.
Storage virtualization controller pair can be configured in active-standby or active-active modes. In active-standby mode, a storage virtualization controller (known as a primary storage virtualization controller) presents, manages, and processes all I/O requests, while the other storage virtualization controller (known as a secondary storage virtualization controller) remains idle to back up the primary storage virtualization controller failure. In active-active mode, the two storage virtualization controllers present, manage, or process the I/O requests of various logical media unit in a redundant storage virtualization subsystem. Under active-active mode, the two storage virtualization controllers can replace each other when a malfunction occurs in the other storage virtualization controller. Active-active mode typically provides better performance, since the resources of both storage virtualization controllers (e.g., central processing unit time, internal bus bandwidth) are better able to handle more I/O requests than a single storage virtualization controller.
Regardless of the mode, a basic functionality of a redundant storage virtualization computer system is that when one storage virtualization controller therein has some troubles, the other storage virtualization controller may take over the tasks of the troubled one, such as continuing the data access to the direct access storage devices. An inter-controller communication channel ICC must be provided between the storage virtualization controllers to establish a redundant storage virtualization computer system, thereby transmitting messages therebetween via the inter-controller communication channel ICC. In addition, each storage virtualization controller should always know the latest working information of the other, that is, the two SVCs are almost in synchronization and the data in each are almost the same, so as to take over the functions from the other when there is a problem in the other.
Conventionally, the inter-controller communication channel ICC is implemented by FC-AL (Fibre Channel-Arbitrated Loop) or parallel small computer system interface (SCSI), or serial advanced technology attachment (SATA). The main reasons for using interconnects or channels of such protocols is that these interconnects support connection with long distance and external connection capability, which facilitate connection between two independent devices.
FIG. 1 is a block diagram of a conventional redundant storage virtualization system. The first storage virtualization controller 100 comprises redundant controller communication (RCC) interconnect controller 136 establishing an inter-controller communication channel ICC to the second storage virtualization controller 100′.
The inter-controller communication channel ICC between the first storage virtualization controller and the second storage virtualization controller is implemented by FC-AL, SCSI or SATA, unlike a local bus in the storage virtualization controllers. As a result, each of two ends of the inter-controller communication channel ICC includes RCC interconnect controller 136 interfacing the local bus and the inter-controller communication channel ICC interfaces, increasing circuit complexity and production cost.
For accomplishing that each of the storage virtualization controllers knows the latest working information of and maintains the data synchronization with its mate (the other storage virtualization controller), in principle, one SVC has to allow its mate to know any change of data of its own such that the two SVCs may be almost in synchronization with each other and therefore one SVC may take over the other SVC thoroughly, successfully, and immediately when the other SVC has some problems. As such, in some situations, the data transmission on the inter-controller communication channel ICC would be quite heavy, which will no doubt increase the workload of the CPU in the storage virtualization controller, and decrease the performance of the redundant storage virtualization system. It is therefore a crucial issue to manage data transmission on the inter-controller communication channel ICC.